#include "widget.h"
#include "ui_widget.h"

#include <QRegExpValidator>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 为单行输入框注册并设置一个验证器,基于正则表达式完成
    QRegExp regExp("^1\\d{10}$");
    ui->lineEdit->setValidator(new QRegExpValidator(regExp)); // 设置验证器

    /*
     * 手机号验证规则:
     * (1) ^1 : 1开头
     * (2) \ : 避免转义字符
     * (3) \d : 必须输入数字
     * (4) {10} : 前面内容必须重复出现10次
     * (5) $ : 表示结尾
    */
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_lineEdit_textEdited(const QString &text)
{
    QString content(text);
    int pos = 0;
    // 验证是否通过,并设置按钮的可用状态
    if(ui->lineEdit->validator()->validate(content, pos) == QValidator::Acceptable) {
        ui->pushButton->setEnabled(true);
    } else {
        ui->pushButton->setEnabled(false);
    }
}

